home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 008 / pccolor.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-06-10  |  7.3 KB  |  240 lines

  1. 5  CLS:SCREEN 0,0,0:WIDTH 80:CLEAR:FOR I=1 TO 10:KEY I,"":NEXT:KEY 2,"GOTO 60"+CHR$(13):KEY 10,"RUN"+CHR$(34)+"BLUEMENU"+CHR$(34)+CHR$(13):LIST 10-57
  2. 12  '*****************  COLOR PALETTES AND COLOR CHIPS  ************************
  3. 16  'KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE
  4. 18  'OPEN                    PC-COLOR PROGRAM DELUXE                              OPEN
  5. 20  'OPEN                                                                         OPEN
  6. 22  'OPEN    This program was keyed in from the November 1982 PC-Magazine. It     OPEN
  7. 24  'OPEN was provided in an article entiled "Color Palettes and Color Chips" by  OPEN
  8. 26  'OPEN Karl Koessell. The article started on page 305.  The program allows     OPEN
  9. 28  'OPEN users to test monitors before purchasing them. It checks the brilliance OPEN
  10. 30  'OPEN of the screen, and demonstrates the color combinations which are avail- OPEN
  11. 32  'OPEN able on the IBM-PC. It permits the viewer to determine the clarity and  OPEN
  12. 34  'OPEN resolution of the WIDTH 80 presentation -- important if you plan to do  OPEN
  13. 35  'OPEN extensive word-processing or detailed programming. This program has no  OPEN
  14. 36  'OPEN commercial application and is provided as a service for personal use    OPEN
  15. 37  'OPEN and color monitor evaluation.   Author: Karl Koessell, address unknown. OPEN
  16. 38  'OPEN                G  I  N  A  C  O -- 1983                   Ver 5.2/320k  OPEN
  17. 50  'SCREENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENLOAD
  18. 55  '        *****  < F2 > to RUN  *******  < F10 > For BLUEMENU  *****
  19. 57  ' ====== To avoid DOCUMENTATION BOX each time, REM or DELETE  line 5 ======
  20. 60  CLS:SCREEN 0,0,0:WIDTH 80:CLEAR:FOR I=1 TO 10:KEY I,"":NEXT
  21. 100  KEY OFF
  22. 110  DEFINT A-Z
  23. 120  GOSUB 230               ' define pointers for function keys
  24. 130  FK=7                    ' Initialize variables
  25. 140  PALETTE = 1
  26. 150  '* * * * MAIN LOOP * * * * * * * * * *
  27. 160  GOSUB 490 ' change display?
  28. 170            ' change background color or ....
  29. 180  IF SCR THEN GOSUB 1990 ELSE GOSUB 1210 '.. change border color
  30. 190  FOR PAUSE=1 TO 2000  'Pause a while
  31. 200  NEXT
  32. 210  GOTO 160 'Go thru main loop again
  33. 220  '*************************************************************
  34. 230  ON KEY(1) GOSUB 380
  35. 240  ON KEY(2) GOSUB 390
  36. 250  ON KEY(3) GOSUB 400
  37. 260  ON KEY(4) GOSUB 410
  38. 270  ON KEY(5) GOSUB 420
  39. 280  ON KEY(6) GOSUB 430
  40. 290  ON KEY(7) GOSUB 440
  41. 300  ON KEY(8) GOSUB 450
  42. 310  ON KEY(9) GOSUB 460
  43. 320  ON KEY(10) GOSUB 470
  44. 330  FOR FK=1 TO 10  ' Activate all
  45. 340      KEY(FK) ON    ' ten function keys
  46. 350  NEXT
  47. 360  RETURN
  48. 370  '****** Flag FK set by function key
  49. 380  FK=1:RETURN
  50. 390  FK=2:RETURN
  51. 400  FK=3:RETURN
  52. 410  FK=4:RETURN
  53. 420  FK=5:RETURN
  54. 430  FK=6:RETURN
  55. 440  FK=7:RETURN
  56. 450  FK=8:RETURN
  57. 460  FK=9:RETURN
  58. 470  FK=10:RETURN
  59. 480  ' If FK, change display accordingly
  60. 490  ON FK GOSUB 520,600,640,640,690,740,790,880,970,1020
  61. 500  RETURN
  62. 510  '****** DISPLAYS AVAILABLE *******
  63. 520  FK=0  'Toggle between screens 0 & 1
  64. 530       SCR = (SCR+1) MOD 2
  65. 540  ' Either prepare text mode or...
  66. 550       IF SCR=0 THEN GOSUB 790: RETURN
  67. 560  ' ... Prepare med. res. graphics mode
  68. 570       W=0    'Clear text mode flag
  69. 580  GOSUB 1560
  70. 590  RETURN
  71. 600  FK=0 'Change palette, graphics only
  72. 610       PALETTE=(PALETTE+1) MOD 2
  73. 620       GOSUB 2030 'Update palette info
  74. 630       RETURN
  75. 640  ON FK GOTO 680,650,640,670  ' PAUSE
  76. 650       GOSUB 490  ' Change display
  77. 660       GOTO 640   ' Still pausing
  78. 670       FK=0 'Continue background/border cycle
  79. 680       RETURN
  80. 690  FK=0 'Rowed foreground
  81. 700       IF RB=0 OR W=41 THEN RETURN
  82. 710       RB=0 'Clear rowed background flag
  83. 720       GOSUB 1300 'Print text display
  84. 730       RETURN
  85. 740  FK=0 'Rowed background
  86. 750       IF RB=1 OR W=41 THEN RETURN
  87. 760       RB=1 'Set rowed background
  88. 770       GOSUB 1300
  89. 780       RETURN
  90. 790  FK=0 'Width 40 text
  91. 800       IF W=1 THEN RETURN
  92. 810       WIDTH 40
  93. 820       W=1 'Flag set to middle of column
  94. 830       V=9 'First line of text
  95. 840       GOSUB 1080 'Prepare text mode
  96. 850       GOSUB 1240 'Update border information
  97. 860       GOSUB 1300
  98. 870       RETURN
  99. 880  FK=0 'Width 80 text
  100. 890       IF W=41 THEN RETURN
  101. 900       WIDTH 80
  102. 910       W=41 'Flag set to middle column
  103. 920       V=1 'First line of text
  104. 930       GOSUB 1080
  105. 940       GOSUB 1240
  106. 950       GOSUB 1300
  107. 960       RETURN
  108. 970  FK=0 'Standard characters
  109. 980       IF BLINK=0 THEN RETURN
  110. 990       BLINK=0 'CLEAR BLINKING FLAG
  111. 1000       GOSUB 1300
  112. 1010       RETURN
  113. 1020  FK=0 'Blinking Characters
  114. 1030       IF BLINK=1 THEN RETURN
  115. 1040       BLINK=1 'Set blinking flag
  116. 1050       GOSUB 1300
  117. 1060       RETURN
  118. 1070  '******** Text Mode ***********
  119. 1080  SCREEN 0,1,0,0
  120. 1090  FOR FK=5 TO 10 'Activate last six function keys
  121. 1100       KEY(FK) ON
  122. 1110  NEXT
  123. 1120  KEY(2) OFF 'Deactivate key 2
  124. 1130  COLOR 7,0
  125. 1140  CLS
  126. 1150  LOCATE ,8,0
  127. 1160  PRINT "COLOR TEXT (SCREEN 0,1,,)"
  128. 1170  PRINT
  129. 1180  GOSUB 2120 'Print instructions
  130. 1190  RETURN
  131. 1200  '********* Change Border Color **********
  132. 1210  BORDER=(BORDER+1) MOD 16
  133. 1220  GOSUB 1240
  134. 1230  RETURN
  135. 1240  LOCATE 25,9+W/2
  136. 1250  COLOR BORDER,0,BORDER
  137. 1260  IF BORDER MOD 8=0 THEN COLOR ,7
  138. 1270  PRINT USING " Border is color _,_,## ";BORDER;
  139. 1280  RETURN
  140. 1290  '********* Print text display ************
  141. 1300  LOCATE V,W
  142. 1310  IF RB=1 AND W=1 THEN 1390
  143. 1320  FOR F=0 TO 15 'Rowed background
  144. 1330     LOCATE V+F,W
  145. 1340     FOR B=0 TO 7
  146. 1350        GOSUB 1510 'Print text
  147. 1360  NEXT B,F
  148. 1370  IF W=1 THEN 1440 'Skip if WIDTH 40
  149. 1380  PRINT " ";
  150. 1390  FOR B=0 TO 7 'Rowed background
  151. 1400     FOR F=0 TO 15
  152. 1410        GOSUB 1510  'Print text
  153. 1420  NEXT F,B
  154. 1430  'Using monochrome display adapter
  155. 1440  DEF SEG=0
  156. 1450  IF (PEEK(1040) AND 48)=48 THEN 1490 'If so then all done, otherwise
  157. 1460  'color monitor needs a white space in last column of 24th monitor line
  158. 1470  DEF SEG=&HB800
  159. 1480  POKE 80*24*(1-1*(W=41))-1,64+32+16
  160. 1490  RETURN
  161. 1500  '********* Text printing routine *********
  162. 1510  FG=F+16*BLINK
  163. 1520  COLOR FG,B 'SET NEW FORGROUND/BACKGROUND
  164. 1530  IF F=15 AND B=7 THEN PRINT "15,7";:GOTO 1550
  165. 1540  PRINT USING "##_,# ";FG;B;
  166. 1550  RETURN
  167. 1560  SCREEN 1,0,0,0
  168. 1570  FOR FK=5 TO 10 'Deactivate last six function keys
  169. 1580     KEY(FK) OFF
  170. 1590  NEXT
  171. 1600  KEY(2) ON 'Activate F2 key
  172. 1610  LOCATE ,5,0
  173. 1620  PRINT "MEDIUM RESOLUTION COLOR GRAPHICS"
  174. 1630  PRINT SPC(13)"(SCREEN 1,0,,)"
  175. 1640  GOSUB 2120 'Print instructions
  176. 1650  LOCATE 9,1
  177. 1660  PRINT "Changing palette changes"
  178. 1670  PRINT "the 4 foreground colors"
  179. 1680  PRINT "displayed at one time."
  180. 1690  FOR F=0 TO 3 'Boxes of color
  181. 1700     LOCATE 10+F*4,30
  182. 1710     PRINT F;"="
  183. 1720     TOP=65+F*32  'Top line
  184. 1730     BOT=TOP+23   'Bottom line
  185. 1740     LINE (272,TOP)-(319,BOT),F,BF
  186. 1750  NEXT
  187. 1760  LOCATE 13,1
  188. 1770  PRINT "For the background and"
  189. 1780  PRINT "palette chosen by the"
  190. 1790  PRINT "statement COLOR "
  191. 1800  PRINT "a foreground number of {"
  192. 1810  LOCATE 18,1
  193. 1820  PRINT "Text (for SCREEN 1,0,,)"
  194. 1830  PRINT "is printed in foreground"
  195. 1840  PRINT "color 3, Text is invisible"
  196. 1850  PRINT "for COLOR 6,0 and COLOR 7,1"
  197. 1860  PRINT "and COLOR 14,0 and COLOR 15,1"
  198. 1870  LOCATE 24,12
  199. 1880  PRINT "Pallete is COLOR ";
  200. 1890  LOCATE 25,10
  201. 1900  PRINT "Background is COLOR ";
  202. 1910  FOR BRKT=25 TO 31 'Extend brackets
  203. 1920     LOCATE 40-BRKT,BRKT
  204. 1930     PRINT "/"
  205. 1940     LOCATE BRKT-8,BRKT
  206. 1950     PRINT "\"
  207. 1960  NEXT
  208. 1970  RETURN
  209. 1980  '********* Change Background Color *********
  210. 1990  BACKGROUND=(BACKGROUND+1) MOD 16
  211. 2000  GOSUB 2030
  212. 2010  RETURN
  213. 2020  '********* Update background/palette info ********
  214. 2030  LOCATE 15,17
  215. 2040  PRINT USING "##_,#";BACKGROUND,PALETTE
  216. 2050  LOCATE 24,29
  217. 2060  PRINT USING "##_, ";PALETTE;
  218. 2070  LOCATE 25,30
  219. 2080  PRINT USING "##_, ";BACKGROUND;
  220. 2090  COLOR BACKGROUND,PALETTE
  221. 2100  RETURN
  222. 2110  '******** Function Key Instructions **********
  223. 2120  PRINT "[F1] = To Change Mode (TEXT or GRAPHICS)"
  224. 2130  IF SCR=0 THEN LOCATE 4,1:GOTO 2150
  225. 2140  PRINT SPC(19)"[F2] = Change Palette"
  226. 2150  PRINT "[F3] = To Pause    ";
  227. 2160  IF SCR=0 THEN PRINT "  ";
  228. 2170  PRINT "[F4] = To Continue"
  229. 2180  IF SCR THEN 2250
  230. 2190  IF W=41 THEN 2210 ' WIDTH 80 has both rowed foreground and rowed background
  231. 2200  PRINT "[F5] = Rowed Frgrnd  [F6]= Rowed Bkgrnd"
  232. 2210  LOCATE 6,1
  233. 2220  PRINT "[F7] = WIDTH 40      [F8] = WIDTH 80"
  234. 2230  PRINT "        Foreground chartacter choices:"
  235. 2240  PRINT "[F9] = Normal   or   [F10] = Blinking"
  236. 2250  RETURN
  237. 2260  END
  238. 65000  REM ===== SAVE ROUTINE =====
  239. 65100  SAVE"B:PC-COLOR.BAS"
  240.